package com.dbdata.move.model;

// Generated cafuc by Hibernate Tools 4

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * SimulatorTaskDocDetails generated by hbm2java
 */
@Entity
@Table(name = "simulator_task_doc_details")
public class SimulatorTaskDocDetails implements java.io.Serializable {

	private Long id;
	private UserBaseInfo userBaseInfoByRightUser;
	private UserBaseInfo userBaseInfoByLeftUser;
	private SimulatorTaskDoc simulatorTaskDoc;
	private UserBaseInfo userBaseInfoByTeacherId;
	private boolean leftTrained;
	private boolean rightTrained;
	private Date startTime;
	private Date endTime;
	private int countTime;
	private boolean addTo;
	private boolean deleted;
	private Date createTime;
	private Boolean leftHourSubsidy;
	private Boolean rightHourSubsidy;
	private Boolean teacherHourSubsidy;
	private Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans = new HashSet<SimulatorTaskDocDetailsTrainPlan>(
			0);

	public SimulatorTaskDocDetails() {
	}

	public SimulatorTaskDocDetails(SimulatorTaskDoc simulatorTaskDoc,
			UserBaseInfo userBaseInfoByTeacherId, boolean leftTrained,
			boolean rightTrained, Date startTime, Date endTime, int countTime,
			boolean addTo, boolean deleted) {
		this.simulatorTaskDoc = simulatorTaskDoc;
		this.userBaseInfoByTeacherId = userBaseInfoByTeacherId;
		this.leftTrained = leftTrained;
		this.rightTrained = rightTrained;
		this.startTime = startTime;
		this.endTime = endTime;
		this.countTime = countTime;
		this.addTo = addTo;
		this.deleted = deleted;
	}

	public SimulatorTaskDocDetails(
			UserBaseInfo userBaseInfoByRightUser,
			UserBaseInfo userBaseInfoByLeftUser,
			SimulatorTaskDoc simulatorTaskDoc,
			UserBaseInfo userBaseInfoByTeacherId,
			boolean leftTrained,
			boolean rightTrained,
			Date startTime,
			Date endTime,
			int countTime,
			boolean addTo,
			boolean deleted,
			Date createTime,
			Boolean leftHourSubsidy,
			Boolean rightHourSubsidy,
			Boolean teacherHourSubsidy,
			Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans) {
		this.userBaseInfoByRightUser = userBaseInfoByRightUser;
		this.userBaseInfoByLeftUser = userBaseInfoByLeftUser;
		this.simulatorTaskDoc = simulatorTaskDoc;
		this.userBaseInfoByTeacherId = userBaseInfoByTeacherId;
		this.leftTrained = leftTrained;
		this.rightTrained = rightTrained;
		this.startTime = startTime;
		this.endTime = endTime;
		this.countTime = countTime;
		this.addTo = addTo;
		this.deleted = deleted;
		this.createTime = createTime;
		this.leftHourSubsidy = leftHourSubsidy;
		this.rightHourSubsidy = rightHourSubsidy;
		this.teacherHourSubsidy = teacherHourSubsidy;
		this.simulatorTaskDocDetailsTrainPlans = simulatorTaskDocDetailsTrainPlans;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID", unique = true, nullable = false)
	public Long getId() {
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "RIGHT_USER")
	public UserBaseInfo getUserBaseInfoByRightUser() {
		return this.userBaseInfoByRightUser;
	}

	public void setUserBaseInfoByRightUser(UserBaseInfo userBaseInfoByRightUser) {
		this.userBaseInfoByRightUser = userBaseInfoByRightUser;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "LEFT_USER")
	public UserBaseInfo getUserBaseInfoByLeftUser() {
		return this.userBaseInfoByLeftUser;
	}

	public void setUserBaseInfoByLeftUser(UserBaseInfo userBaseInfoByLeftUser) {
		this.userBaseInfoByLeftUser = userBaseInfoByLeftUser;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "SIMULATOR_TASK_DOC_ID", nullable = false)
	public SimulatorTaskDoc getSimulatorTaskDoc() {
		return this.simulatorTaskDoc;
	}

	public void setSimulatorTaskDoc(SimulatorTaskDoc simulatorTaskDoc) {
		this.simulatorTaskDoc = simulatorTaskDoc;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "TEACHER_ID", nullable = false)
	public UserBaseInfo getUserBaseInfoByTeacherId() {
		return this.userBaseInfoByTeacherId;
	}

	public void setUserBaseInfoByTeacherId(UserBaseInfo userBaseInfoByTeacherId) {
		this.userBaseInfoByTeacherId = userBaseInfoByTeacherId;
	}

	@Column(name = "LEFT_TRAINED", nullable = false)
	public boolean isLeftTrained() {
		return this.leftTrained;
	}

	public void setLeftTrained(boolean leftTrained) {
		this.leftTrained = leftTrained;
	}

	@Column(name = "RIGHT_TRAINED", nullable = false)
	public boolean isRightTrained() {
		return this.rightTrained;
	}

	public void setRightTrained(boolean rightTrained) {
		this.rightTrained = rightTrained;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "START_TIME", nullable = false, length = 19)
	public Date getStartTime() {
		return this.startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "END_TIME", nullable = false, length = 19)
	public Date getEndTime() {
		return this.endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	@Column(name = "COUNT_TIME", nullable = false)
	public int getCountTime() {
		return this.countTime;
	}

	public void setCountTime(int countTime) {
		this.countTime = countTime;
	}

	@Column(name = "ADD_TO", nullable = false)
	public boolean isAddTo() {
		return this.addTo;
	}

	public void setAddTo(boolean addTo) {
		this.addTo = addTo;
	}

	@Column(name = "DELETED", nullable = false)
	public boolean isDeleted() {
		return this.deleted;
	}

	public void setDeleted(boolean deleted) {
		this.deleted = deleted;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CREATE_TIME", length = 19)
	public Date getCreateTime() {
		return this.createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	@Column(name = "LEFT_HOUR_SUBSIDY")
	public Boolean getLeftHourSubsidy() {
		return this.leftHourSubsidy;
	}

	public void setLeftHourSubsidy(Boolean leftHourSubsidy) {
		this.leftHourSubsidy = leftHourSubsidy;
	}

	@Column(name = "RIGHT_HOUR_SUBSIDY")
	public Boolean getRightHourSubsidy() {
		return this.rightHourSubsidy;
	}

	public void setRightHourSubsidy(Boolean rightHourSubsidy) {
		this.rightHourSubsidy = rightHourSubsidy;
	}

	@Column(name = "TEACHER_HOUR_SUBSIDY")
	public Boolean getTeacherHourSubsidy() {
		return this.teacherHourSubsidy;
	}

	public void setTeacherHourSubsidy(Boolean teacherHourSubsidy) {
		this.teacherHourSubsidy = teacherHourSubsidy;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "simulatorTaskDocDetails")
	public Set<SimulatorTaskDocDetailsTrainPlan> getSimulatorTaskDocDetailsTrainPlans() {
		return this.simulatorTaskDocDetailsTrainPlans;
	}

	public void setSimulatorTaskDocDetailsTrainPlans(
			Set<SimulatorTaskDocDetailsTrainPlan> simulatorTaskDocDetailsTrainPlans) {
		this.simulatorTaskDocDetailsTrainPlans = simulatorTaskDocDetailsTrainPlans;
	}

}
